/*
 * Clase que crea una nueva instancia unica de la edificacion
 * metropolis para cada jugador.
 */
package fuente;

public class Metropolis {
    
    private int _vida,
                _vidaMax,
                _cantidadMinerales;
    
    private String _nombre;
    
    /**
     * Constructor, crea la instancia e inicializa sus atributos.
     * @param pNombreJugador Nombre del jugador que posee esta metropolis
     */
    protected Metropolis (String pNombreJugador) {
        _vida = _vidaMax = 5000;
        _cantidadMinerales = 0;
        _nombre = pNombreJugador;
    }
    
    /* Inicip implementacion de getters y setters */
    /**
     * 
     * @return El nombre de la metropolis, o nombre de jugador que la posee
     */
    public String getNombre () {
        return _nombre;
    }
    
    /**
     * 
     * @return Puntos de vida que tiene la metropolis en el momento 
     */
    public int getVida () {
        return _vida;
    }
    
    /**
     * 
     * @return Puntos de vida maxima que puede llegar a tener la metropolis
     */
    public int getVidaMax () {
        return _vidaMax;
    }
    
    /**
     * 
     * @return La cantidad de minerales que contiene almacenados en el momento
     */
    public int getCantidadDeMinerales () {
        return _cantidadMinerales;
    }
    
    /**
     * 
     * @param pCantidadMinerales Cantidad de minerales a establecer
     */
    public void setCantidadMinerales (int pCantidadMinerales) {
        _cantidadMinerales = pCantidadMinerales;
    }
    /* Final implementacion de getters y setters */
    
    /**
     * Regenera la vida de la edificacion.
     * @param pVida Vida a sumar al atributo
     */
    public void regenerar (int pVida) {
        if (_vida == _vidaMax) {
            
        }
        else if (_vida + pVida > _vidaMax) {
            _vida = _vidaMax;
        }
        else {
            _vida += pVida;
        }
    }
    
    /**
     * Aumenta la cantidad almacenada de minerales.
     * @param pCargaUnidad Cantidad de minerales a aumentar
     */
    public void aumentarMinerales (int pCargaUnidad) {
        _cantidadMinerales += pCargaUnidad;
    }
}
